/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package proyectocallcentergrupo6;
import java.sql.*;

/**
 *
 * @author 18736350-0
 */
public class Cliente {
    Conectar con;
    private String ID, Nombre, Apellido,email, Ciudad, Fono;
  
    public Cliente(){
    con = new Conectar();
    } 
  //By Isaac - Agrege un comportamiento y unas variables para usar desde la interfaz Supervisor
  public Cliente Buscar(String id){
      Cliente c = new Cliente();
      try{
            PreparedStatement p = con.getConnection().prepareStatement("SELECT * FROM cliente"+
                    " WHERE \"ID Cliente\" = ?");
            p.setString(1, id);
            ResultSet res = p.executeQuery();
            res.next();
            c.setID(res.getString("ID Cliente"));
            c.setNombre(res.getString("NOMBRE"));
            c.setApellido(res.getString("APELLIDO"));
            c.setEmail(res.getString("EMAIL"));
            c.setCiudad(res.getString("CIUDAD"));
            c.setFono(res.getString("TELÉFONO"));
            res.close();
        }catch(SQLException e){
            c=null;
        }
      return c;
  }
  //ELIMINAR - TOMAR EN CUENTA EL BORRAR LAS OTRAS TABLAS TAMBIEN
  public void eliminar(String idcliente){
         try{
          PreparedStatement p = con.getConnection().prepareStatement("DELETE FROM cliente WHERE \"ID Cliente\" = ?");
          p.setString(1,idcliente);
          p.execute();
          p.close();
      }catch(SQLException e){
          System.out.println("ATENCION: "+e);
      }
      
  }
  
  //Actualiza datos de cliente
  public void modificar(String id, String name,String apellido, String email, String fono,String ciudad){
      try{
          PreparedStatement p = con.getConnection().prepareStatement("UPDATE cliente " +
                 
                  "set NOMBRE = ? , " +
                  "APELLIDO= ?, " +
                  "CIUDAD = ? , " +
                  "EMAIL = ?, " +
                  "TELÉFONO = ?" +
                  "WHERE \"ID Cliente\" = ?");
          p.setString(1, name);
          p.setString(2, apellido);
          p.setString(3, ciudad);
          p.setString(4, email);
          p.setString(5, fono);
          p.setString(6, id);
          p.execute();
          p.close();          
      }catch(SQLException e){
          System.out.println("ATENCION: " + e);
      }
      
  }
      
      
  
  
  //agregar nueva persona
   public void agregar(String id, String name,String apellido, String ciudad, String email, String fono){
       try {            
            PreparedStatement pstm = con.getConnection().prepareStatement("insert into " + 
                    "cliente(\"ID Cliente\",NOMBRE,APELLIDO,CIUDAD,EMAIL,TELÉFONO) " +
                    " values(?,?,?,?,?,?)");            
            pstm.setString(1, id);
            pstm.setString(2, name);
            pstm.setString(3, apellido);
            pstm.setString(4, ciudad);                        
            pstm.setString(5, email);                                       
            pstm.setString(6, fono);                        
            pstm.execute();
            pstm.close();            
         }catch(SQLException e){
         System.out.println("ATENCION: "+e);
         }
       
   }
         
    //Obtener datos de la tabla
 public Object [][] getDatos(){
        int registros = 0;
      //obtener la cantidad de registros 
      try{         
         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT count(1) as total FROM cliente ");
         ResultSet res = pstm.executeQuery();
         res.next();
         registros = res.getInt("total");
         res.close();
      }catch(SQLException e){
         System.out.println(e);
      }
  Object[][] data = new String[registros][6];  
    
      try{    
         PreparedStatement pstm = con.getConnection().prepareStatement("SELECT " +
            " \"ID Cliente\", NOMBRE,apellido, ciudad,email,teléfono " +
            " FROM cliente" +
            " ORDER BY \"ID Cliente\" ");
         ResultSet res = pstm.executeQuery();
         int i = 0;
         while(res.next()){
            String estID = res.getString("ID Cliente");
            String estNombre = res.getString("NOMBRE");
            String estApellido = res.getString("apellido");
            String estCiudad = res.getString("ciudad");
            String estEmail= res.getString("email");
            String estFono = res.getString("teléfono"); 
           
            data[i][0] = estID;            
            data[i][1] = estNombre; 
            data[i][2] = estApellido;
            data[i][3] = estCiudad; 
            data[i][4] = estEmail;            
            data[i][5] = estFono;           
                      
            i++;
         }
         res.close();
          }catch(SQLException e){
         System.out.println(e);
    }
    return data;
    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public String getNombre() {
        return Nombre;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public String getApellido() {
        return Apellido;
    }

    public void setApellido(String Apellido) {
        this.Apellido = Apellido;
    }

    public String getCiudad() {
        return Ciudad;
    }

    public void setCiudad(String Ciudad) {
        this.Ciudad = Ciudad;
    }

    public String getFono() {
        return Fono;
    }

    public void setFono(String Fono) {
        this.Fono = Fono;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
    
    
      
      
      
      
}

      
         
    

